Soft-decision decoder